Tüm kullanıcılar için kapsayıcılık sağlamak amacıyla web sitelerini ekran okuyucu uyumluluğu için optimize etmeye odaklanan kapsamlı bir web erişilebilirliği rehberi.
Web Erişilebilirliği: Web Sitenizi Ekran Okuyucu Kullanıcıları İçin Optimize Etme
Günümüzün dijital çağında, web erişilebilirliği sadece 'olsa iyi olur' denilecek bir özellik değil; temel bir gerekliliktir. Erişilebilir bir web sitesi, ekran okuyuculara bağımlı olanlar da dahil olmak üzere engelli kişilerin web'i algılayabilmesini, anlayabilmesini, gezinebilmesini ve onunla etkileşim kurabilmesini sağlar.
Bu kapsamlı rehber, temel teknikleri, en iyi uygulamaları ve gerçek dünya örneklerini kapsayarak, web sitenizi ekran okuyucu kullanıcıları için optimize etmenin ayrıntılarına inecektir.
Ekran Okuyucu Nedir?
Bir ekran okuyucu, bir bilgisayar ekranındaki metni ve diğer öğeleri konuşma veya braille çıktısına dönüştüren bir yardımcı teknolojidir. Görme engelli bireylerin dijital içeriğe erişmesine ve etkileşimde bulunmasına olanak tanır. Popüler ekran okuyucular şunları içerir:
- JAWS (Job Access With Speech): Windows için yaygın olarak kullanılan bir ekran okuyucu.
- NVDA (NonVisual Desktop Access): Windows için ücretsiz ve açık kaynaklı bir ekran okuyucu.
- VoiceOver: Apple'ın macOS ve iOS için yerleşik ekran okuyucusu.
- ChromeVox: Google Chrome ve Chrome OS için bir ekran okuyucu uzantısı.
- Orca: Linux için ücretsiz ve açık kaynaklı bir ekran okuyucu.
Ekran okuyucular, bir web sitesinin temel kodunu yorumlayarak ve kullanıcıya içerik ve yapı hakkında bilgi sağlayarak çalışır. Web sitelerinin, ekran okuyucuların kolayca anlayabileceği ve gezinebileceği bir şekilde yapılandırılması çok önemlidir.
Ekran Okuyucu Optimizasyonu Neden Önemlidir?
Web sitenizi ekran okuyucular için optimize etmek sayısız fayda sağlar:
- Kapsayıcılık: Görme engelli kullanıcıların web sitenize etkili bir şekilde erişmesini ve kullanmasını sağlar.
- Yasal Uygunluk: Birçok ülkede web erişilebilirliğini gerektiren yasalar ve düzenlemeler bulunmaktadır (örneğin, Amerika Birleşik Devletleri'nde Engelli Amerikalılar Yasası (ADA), Kanada'da Engelli Ontariolular için Erişilebilirlik Yasası (AODA) ve Avrupa'da EN 301 549).
- Geliştirilmiş Kullanıcı Deneyimi: Erişilebilir tasarım genellikle, engellilik durumuna bakılmaksızın tüm kullanıcılar için daha iyi bir kullanıcı deneyimine yol açar.
- Daha Geniş Kitleye Ulaşım: Web sitenizi erişilebilir hale getirerek, onu daha geniş bir potansiyel kitleye açarsınız.
- SEO Faydaları: Arama motorları erişilebilir web sitelerini tercih eder, bu da arama motoru sıralamalarınızı iyileştirebilir.
Ekran Okuyucu Optimizasyonunun Temel İlkeleri
Aşağıdaki ilkeler, ekran okuyucu dostu web siteleri oluşturmak için esastır:
1. Semantik HTML
Semantik HTML öğelerini doğru kullanmak, içeriğinize yapı ve anlam kazandırmak için çok önemlidir. Semantik öğeler, web sitenizin farklı bölümlerinin amacını ekran okuyuculara ileterek kullanıcıların daha verimli bir şekilde gezinmesine olanak tanır.
Örnekler:
- Site başlığı için
<header>
kullanın. - Gezinme menüleri için
<nav>
kullanın. - Ana içerik alanı için
<main>
kullanın. - Bağımsız içerik bloklarını sarmalamak için
<article>
kullanın. - Ek içerik için
<aside>
kullanın. - Site altbilgisi için
<footer>
kullanın. - Başlıklar için
<h1>
ila<h6>
kullanın. - Paragraflar için
<p>
kullanın. - Listeler için
<ul>
ve<ol>
kullanın.
Örnek Kod:
<header>
<h1>Web Sitem</h1>
<nav>
<ul>
<li><a href="#">Ana Sayfa</a></li>
<li><a href="#">Hakkında</a></li>
<li><a href="#">Hizmetler</a></li>
<li><a href="#">İletişim</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>Makale Başlığı</h2>
<p>Bu, makalenin ana içeriğidir.</p>
</article>
</main>
<footer>
<p>Telif Hakkı 2023</p>
</footer>
2. Görseller için Alternatif Metin
Görseller, görselin içeriğini ve amacını ekran okuyucu kullanıcılarına ileten açıklayıcı bir alternatif metne (alt text) her zaman sahip olmalıdır. Alternatif metin kısa ve bilgilendirici olmalıdır.
En İyi Uygulamalar:
- Dekoratif görseller de dahil olmak üzere tüm görseller için alternatif metin sağlayın.
- Alternatif metni kısa ve açıklayıcı tutun.
- "...nın resmi" veya "...nın fotoğrafı" gibi ifadeler kullanmaktan kaçının.
- Karmaşık görseller için uzun bir açıklama (
longdesc
özelliği veya ayrı bir açıklayıcı metin) kullanmayı düşünün. - Eğer bir görsel tamamen dekoratifse ve hiçbir anlam katmıyorsa, ekran okuyucuların onu anons etmesini önlemek için boş bir alt özelliği (
alt=""
) kullanın.
Örnek Kod:
<img src="logo.png" alt="Şirket Logosu">
<img src="decorative.png" alt="">
3. ARIA Nitelikleri
ARIA (Erişilebilir Zengin İnternet Uygulamaları) nitelikleri, özellikle dinamik içerik ve karmaşık widget'lar için öğelerin rolü, durumu ve özellikleri hakkında ekran okuyuculara ek bilgi sağlar. ARIA nitelikleri, semantik HTML'nin tek başına yeterli olmadığı durumlarda erişilebilirliği artırabilir.
Yaygın ARIA Nitelikleri:
- role: Bir öğenin rolünü tanımlar (ör.
role="button"
,role="navigation"
). - aria-label: Görsel bir etiket olmadığında veya yeterli olmadığında bir öğe için metin etiketi sağlar.
- aria-labelledby: Bir öğeyi, etiketi olarak hizmet eden başka bir öğeyle ilişkilendirir.
- aria-describedby: Bir öğeyi, açıklama sağlayan başka bir öğeyle ilişkilendirir.
- aria-hidden: Bir öğeyi ekran okuyuculardan gizler.
- aria-live: Bir öğenin içeriğinin dinamik olarak güncellendiğini belirtir (ör.
aria-live="polite"
,aria-live="assertive"
). - aria-expanded: Katlanabilir bir öğenin o anda genişletilmiş mi yoksa daraltılmış mı olduğunu belirtir.
- aria-haspopup: Bir öğenin bir açılır menüye sahip olduğunu belirtir.
Örnek Kod:
<button role="button" aria-label="Diyalogu kapat" onclick="closeDialog()">X</button>
<div id="description">Bu, görselin bir açıklamasıdır.</div>
<img src="example.jpg" aria-describedby="description" alt="Örnek Görsel">
Önemli Not: ARIA niteliklerini akıllıca kullanın. ARIA'yı aşırı kullanmak erişilebilirlik sorunları yaratabilir. Her zaman önce semantik HTML öğelerini kullanın ve yalnızca varsayılan semantiği tamamlamak veya geçersiz kılmak için gerektiğinde ARIA kullanın.
4. Klavye ile Gezinme
Web sitenizdeki tüm etkileşimli öğelerin yalnızca klavye kullanılarak gezinilebilir olduğundan emin olun. Bu, fare veya başka bir işaretleme cihazı kullanamayan kullanıcılar için çok önemlidir. Klavye ile gezinme, büyük ölçüde odak göstergelerinin doğru kullanımına ve mantıksal sekme sırasına dayanır.
En İyi Uygulamalar:
- Odak Göstergeleri: Tüm etkileşimli öğelerin (ör. bağlantılar, düğmeler, form alanları) seçildiklerinde net ve görünür bir odak göstergesine sahip olduğundan emin olun.
:focus
durumunu şekillendirmek için CSS kullanın. - Sekme Sırası: Sekme sırası, sayfanın mantıksal okuma sırasını (genellikle soldan sağa, yukarıdan aşağıya) takip etmelidir. Gerekirse sekme sırasını ayarlamak için
tabindex
özelliğini kullanın. Yanlış kullanıldığında erişilebilirlik sorunları yaratabileceğinden, kesinlikle gerekli olmadıkçatabindex="0"
vetabindex="-1"
kullanmaktan kaçının. - Gezinmeyi Atlama Bağlantıları: Sayfanın üst kısmında, kullanıcıların ana gezinme menüsünü atlayıp doğrudan ana içeriğe geçmelerini sağlayan bir "gezinmeyi atla" bağlantısı sağlayın. Bu, özellikle ekran okuyucu kullanan kullanıcılar için faydalıdır, çünkü her sayfada tekrarlayan gezinme bağlantıları arasında gezinme ihtiyacını azaltır.
- Modal Diyaloglar: Bir modal diyalog açıldığında, odak kapanana kadar diyalog içinde tutulduğundan emin olun. Kullanıcıların diyalog dışına sekme ile geçmesini önleyin.
Örnek Kod (Gezinmeyi Atlama Bağlantısı):
<a href="#main-content" class="skip-link">Ana içeriğe atla</a>
<header>
<nav>
<!-- Gezinme Menüsü -->
</nav>
</header>
<main id="main-content">
<!-- Ana İçerik -->
</main>
Örnek Kod (Odak Göstergesi için CSS):
a:focus, button:focus, input:focus, textarea:focus, select:focus {
outline: 2px solid blue;
outline-offset: 2px;
}
5. Form Erişilebilirliği
Formlar birçok web sitesinin kritik bir parçasıdır ve ekran okuyucu kullanıcıları için erişilebilir olmalarını sağlamak esastır. Doğru etiketleme, net talimatlar ve hata yönetimi, form erişilebilirliği için çok önemlidir.
En İyi Uygulamalar:
- Etiketleme: Etiketleri form alanlarıyla ilişkilendirmek için
<label>
öğesini kullanın.<label>
öğesininfor
özelliği, ilgili form alanınınid
özelliğiyle eşleşmelidir. - Talimatlar: Formu doldurmak için açık ve net talimatlar sağlayın. Talimatları form alanlarıyla ilişkilendirmek için
aria-describedby
özelliğini kullanın. - Hata Yönetimi: Hata mesajlarını açıkça ve belirgin bir şekilde görüntüleyin. Hata mesajlarını ekran okuyucu kullanıcılarına duyurmak için
aria-live
özelliğini kullanın. Hata mesajlarınıaria-describedby
özelliğini kullanarak ilgili form alanlarıyla ilişkilendirin. - Zorunlu Alanlar: Gerekli alanları hem görsel hem de programatik olarak açıkça belirtin. Gerekli alanları işaretlemek için
required
özelliğini kullanın. Bir alanın zorunlu olduğunu ekran okuyucu kullanıcılarına belirtmek içinaria-required
özelliğini kullanın. - İlgili Alanları Gruplama: İlgili form alanlarını gruplamak için
<fieldset>
ve<legend>
öğelerini kullanın.
Örnek Kod:
<label for="name">Ad:</label>
<input type="text" id="name" name="name" required aria-required="true">
<div id="name-instructions">Lütfen tam adınızı girin.</div>
<label for="name">Ad:</label>
<input type="text" id="name" name="name" aria-describedby="name-instructions">
<form>
<fieldset>
<legend>İletişim Bilgileri</legend>
<label for="email">E-posta:</label>
<input type="email" id="email" name="email" required aria-required="true"><br><br>
<label for="phone">Telefon:</label>
<input type="tel" id="phone" name="phone">
</fieldset>
</form>
6. Dinamik İçerik Erişilebilirliği
Web sitenizdeki içerik dinamik olarak değiştiğinde (örneğin, AJAX veya JavaScript aracılığıyla), ekran okuyucu kullanıcılarının değişikliklerden haberdar edilmesini sağlamak çok önemlidir. Dinamik içerik güncellemelerini duyurmak için ARIA canlı bölgelerini kullanın.
ARIA Canlı Bölgeleri:
- aria-live="off": Varsayılan değer. Bölgedeki güncellemeler duyurulmaz.
- aria-live="polite": Kullanıcı boştayken güncellemeleri duyurur. Bu en yaygın ve önerilen değerdir.
- aria-live="assertive": Kullanıcının işlemini keserek güncellemeleri hemen duyurur. Rahatsız edici olabileceğinden bu değeri idareli kullanın.
Örnek Kod:
<div aria-live="polite" id="status-message"></div>
<script>
// İçerik güncellendiğinde, durum mesajını güncelleyin
document.getElementById('status-message').textContent = "İçerik başarıyla güncellendi!";
</script>
7. Renk Kontrastı
Metin ve arka plan renkleri arasında yeterli renk kontrastı olduğundan emin olun. Bu, az gören veya renk körü olan kullanıcılar için önemlidir. Web İçeriği Erişilebilirlik Yönergeleri (WCAG), normal metin için en az 4.5:1 ve büyük metin için 3:1 kontrast oranı gerektirir.
Renk Kontrastını Kontrol Etme Araçları:
- WebAIM Renk Kontrastı Denetleyicisi (webaim.org/resources/contrastchecker/)
- Coolors (coolors.co)
- Adobe Color (color.adobe.com)
8. Medya Erişilebilirliği
Web siteniz ses veya video içeriği içeriyorsa, içeriği göremeyen veya duyamayan kullanıcılar için alternatifler sağlayın. Bunlar şunları içerir:
- Altyazılar: Tüm video içerikleri için altyazı sağlayın. Altyazılar, ses kaydının senkronize metin transkriptleridir.
- Transkriptler: Tüm ses ve video içerikleri için metin transkriptleri sağlayın. Transkriptler, tüm konuşulan içeriğin yanı sıra önemli seslerin ve görsel öğelerin açıklamalarını da içermelidir.
- Sesli Betimlemeler: Video içeriği için sesli betimlemeler sağlayın. Sesli betimlemeler, kör veya görme engelli kullanıcılar için videonun görsel öğelerini anlatır.
9. Ekran Okuyucular ile Test Etme
Web sitenizin ekran okuyucu kullanıcıları için erişilebilir olduğundan emin olmanın en etkili yolu, onu çeşitli ekran okuyucularla test etmektir. Bu, mevcut olabilecek erişilebilirlik sorunlarını belirlemenize ve düzeltmenize yardımcı olacaktır.
Test Araçları:
- Manuel Test: Web sitenizde gezinmek için NVDA (ücretsiz), JAWS (ücretli) veya VoiceOver (macOS ve iOS'ta yerleşik) gibi ekran okuyucuları kullanın. Yaygın görevleri ve etkileşimleri tamamlamaya çalışın.
- Otomatik Test: Potansiyel erişilebilirlik sorunlarını belirlemek için erişilebilirlik test araçlarını kullanın. Bu araçlar yaygın hataları yakalamanıza yardımcı olabilir, ancak manuel testin yerine kullanılmamalıdır. Bazı popüler erişilebilirlik test araçları şunlardır:
- WAVE (Web Accessibility Evaluation Tool)
- axe DevTools
- Lighthouse (in Chrome DevTools)
Ekran Okuyucularla Test Etmek İçin İpuçları:
- Temelleri Öğrenin: Kullandığınız ekran okuyucunun temel komutlarına ve gezinme tekniklerine aşina olun.
- Farklı Ekran Okuyucular Kullanın: Her ekran okuyucu web içeriğini farklı yorumladığından, web sitenizi çeşitli ekran okuyucularla test edin.
- Engelli Kullanıcıları Dahil Edin: Web sitenizin erişilebilir olduğundan emin olmanın en iyi yolu, test sürecine engelli kullanıcıları dahil etmektir. Ekran okuyucu kullanıcılarından web sitenizin kullanılabilirliği ve erişilebilirliği hakkında geri bildirim alın.
WCAG (Web İçeriği Erişilebilirlik Yönergeleri)
Web İçeriği Erişilebilirlik Yönergeleri (WCAG), web içeriğini daha erişilebilir hale getirmek için uluslararası olarak tanınan bir dizi yönergedir. WCAG, World Wide Web Konsorsiyumu (W3C) tarafından geliştirilmiştir ve web erişilebilirliği için yaygın olarak bir standart olarak kullanılmaktadır.
WCAG, POUR olarak bilinen dört ilke etrafında düzenlenmiştir:
- Algılanabilir: Bilgi ve kullanıcı arayüzü bileşenleri, kullanıcıların algılayabileceği şekillerde sunulmalıdır.
- İşletilebilir: Kullanıcı arayüzü bileşenleri ve gezinme işletilebilir olmalıdır.
- Anlaşılabilir: Bilgi ve kullanıcı arayüzünün işleyişi anlaşılabilir olmalıdır.
- Sağlam: İçerik, yardımcı teknolojiler de dahil olmak üzere çok çeşitli kullanıcı aracıları tarafından güvenilir bir şekilde yorumlanabilecek kadar sağlam olmalıdır.
WCAG üç uygunluk düzeyine ayrılmıştır: A, AA ve AAA. Seviye A en temel erişilebilirlik düzeyiyken, Seviye AAA en yüksek düzeydir. Çoğu kuruluş Seviye AA'ya uymayı hedefler.
Sonuç
Web sitenizi ekran okuyucu kullanıcıları için optimize etmek, gerçekten kapsayıcı ve erişilebilir bir çevrimiçi deneyim yaratmaya yönelik önemli bir adımdır. Bu kılavuzda belirtilen ilkelere ve en iyi uygulamalara uyarak, web sitenizin engellilik durumuna bakılmaksızın tüm kullanıcılar için erişilebilir olmasını sağlayabilirsiniz.
Web erişilebilirliğinin devam eden bir süreç olduğunu unutmayın. Web sitenizi düzenli olarak ekran okuyucular ve erişilebilirlik test araçlarıyla test edin ve en son erişilebilirlik yönergeleri ve en iyi uygulamalar hakkında güncel kalın. Erişilebilirliği bir öncelik haline getirerek, herkes için daha iyi bir web yaratabilirsiniz.
Ek Kaynaklar:
- WebAIM: https://webaim.org/
- W3C Web Erişilebilirlik Girişimi (WAI): https://www.w3.org/WAI/
- Deque University: https://dequeuniversity.com/